import streamlit as st
import random

# 设置页面配置
st.set_page_config(
    page_title="创意故事生成器",
    page_icon="📚",
    layout="wide"
)

# 应用标题
st.title("✨ 创意故事生成器")
st.markdown("### 让我们一起创造有趣的故事吧！")

# 故事元素库
scenes = [
    "神秘的森林",
    "繁华的未来城市",
    "宁静的海边小镇",
    "古老的城堡",
    "热闹的太空站"
]

characters = [
    "勇敢的探险家",
    "聪明的科学家",
    "可爱的小动物",
    "神秘的魔法师",
    "友善的机器人"
]

plots = [
    "发现了一个神秘的宝藏",
    "遇到了一个不可思议的难题",
    "结识了新朋友",
    "展开了一场冒险",
    "学会了重要的一课"
]

# 创建侧边栏
st.sidebar.header("故事元素选择")

# 场景选择
selected_scene = st.sidebar.selectbox(
    "选择故事发生的场景",
    scenes
)

# 角色选择
selected_character = st.sidebar.selectbox(
    "选择故事的主角",
    characters
)

# 情节选择
selected_plot = st.sidebar.selectbox(
    "选择故事的主要情节",
    plots
)

# 添加随机元素选项
if st.sidebar.button("随机选择元素"):
    selected_scene = random.choice(scenes)
    selected_character = random.choice(characters)
    selected_plot = random.choice(plots)

# 生成故事按钮
if st.button("生成故事", type="primary"):
    story = f"""
    在{selected_scene}里，有一位{selected_character}。
    一天，他{selected_plot}。
    这次经历让他明白了生活中充满了无限可能，
    每一个选择都可能带来意想不到的惊喜。
    """
    
    # 显示生成的故事
    st.success("故事生成成功！")
    st.markdown("### 你的故事")
    st.write(story)
    
    # 添加分享选项
    st.markdown("### 分享你的故事")
    st.text_area("复制下面的故事分享给朋友", story, height=200)

# 添加使用说明
with st.expander("使用说明"):
    st.markdown("""
    1. 在左侧边栏选择故事元素：
        - 选择故事发生的场景
        - 选择故事的主角
        - 选择故事的主要情节
    2. 也可以点击"随机选择元素"按钮随机选择所有元素
    3. 点击"生成故事"按钮生成你的独特故事
    4. 可以复制生成的故事并分享给朋友
    """)

# 添加页脚
st.markdown("---")
st.markdown("### 关于")
st.markdown("""
这是一个使用Streamlit开发的创意故事生成器。
通过选择不同的场景、角色和情节，你可以创造出独特的故事。
让我们一起探索创意的无限可能！
""")